MyDesktop.Universidad = Ext.extend(Ext.app.Module, {
    id:'universidad-win',
    init : function(){
        this.launcher = {
            text: 'MANTENIMIENTO DE UNIVERSIDADES',
            iconCls:'icon_win_universidad',
            handler : this.createWindow,
            scope: this
        }
    },
  
    createWindow : function()
    {
        var desktop = this.app.getDesktop();
        var win = desktop.getWindow('universidad-win');
                
        //Ext.form.Field.prototype.msgTarget=  'side';
        
        if(!win)
        {
            var store_universidades = new Ext.data.JsonStore
            ({
                url: 'modulos/universidad/load_data.php?tipo=1',//tomara datos de las universidades
                root: 'data',
                fields: ['iduniversidad','nombre_univ','zona_univ','activo_univ','fecharegistro_univ'] //Cargar todos los datos...
            });
            store_universidades.load(); // Carga de Universidades
            
           
           var grid_universidad = new Ext.grid.GridPanel
           ({
                    id          : 'id_grid_universidad_g',
                    store       : store_universidades,
                    region	: 'center',
                    margins	: '3 3 3 3',
                    width       : 350,
                    fieldDefaults: {
                        msgTarget: 'side',
                        labelWidth: 75
                    },
                    defaults: {
                        anchor: '100%'
                    },
                    columns         :
                    [
			new Ext.grid.RowNumberer(),
                        {header:'idniversidad', sortable: true, dataIndex:'iduniversidad',width:10,hidden:true},
                        {header:'NOMBRE UNIVERSIDAD', sortable: true, dataIndex:'nombre_univ',width:180},
			//{header:'Zona Geo', sortable: true, dataIndex:'zona_univ',width:70},
                        //{header:'Activo', sortable: true, dataIndex:'activo_univ',width:50},
                        //{header:'Fecha Registro', sortable: true, dataIndex:'fecharegistro_univ',width:70}
                        
                    ],
                    viewConfig      :   {forceFit:true},
                    height          :   250,                    
                    border          :   false,
                    autoScroll      :   true
            });
            
            grid_universidad.on
            ({
                    'rowdblclick':
                    {
                        fn: function()
			{
                            var selections = this.selModel.getSelections();
                            Ext.each(selections,function(record)
                            {
                                //Ext.getCmp('id_tabs_opciones_natural').activate(1);
                                Ext.getCmp('id-form-universidad-g').body.mask('Cargando Informacion', 'x-mask-loading');
                                var iduniversidad = record.get('iduniversidad'); //Con record.get obtenes los dataindex del grid
                                
                                Ext.Ajax.request
                                ({   
                                    waitMsg: 'Please wait...',
                                    url: 'modulos/universidad/load_data.php?tipo=2',
                                    method: 'GET',
                                    params: 
                                    {
                                        iduniversidad    :   iduniversidad
                                    }, 
                                    success: function(resp) // en resp obtenemos la informacipon de Ajax
                                    {		
                                        var data;
                                        data = Ext.decode(resp.responseText); // Decodificamos la información para hacer uso de ella camapo por campo
                                        
                                        if(data.success == true)
                                        {
                                            Ext.getCmp('id-form-universidad-g').getForm().reset();
                                            Ext.getCmp("hid_int_iduniversidad_g").setValue(data.iduniversidad);
                                            Ext.getCmp("txt_nombre_univ_g").setValue(data.nombre_univ);
                                            Ext.getCmp("cmb_zona_inv_g").setValue(data.zona_univ);
                                            Ext.getCmp("bol_activo_univ_g").setValue(data.activo_univ);
                                            
                                            Ext.getCmp('id-form-universidad-g').body.unmask();
                                           
                                            Ext.getCmp("btnEditUniversidad").enable();
                                            Ext.getCmp("btnSaveUniversidad").disable();
                                            Ext.getCmp("btnCancelarUniversidad").disable();
                                            Ext.getCmp("txt_nombre_univ_g").disable();
                                            Ext.getCmp("cmb_zona_inv_g").disable();
                                            Ext.getCmp("bol_activo_univ_g").disable();                                            
                                            

                                        }
                                        else
                                        {
                                            onDisableInput_nat();
                                            Ext.MessageBox.show
                                            ({
                                                title: 'ERROR DE SISTEMA',
                                                msg: '<b>OCURRIO  UN ERROR AL MOMENTO DE CARGAR LA INFORMACION</b>',
                                                buttons: Ext.MessageBox.OK,
                                                icon: Ext.MessageBox.WARNING
                                            });	    
                                        }
                                        Ext.getCmp('id-form-universidad-g').body.unmask();
                                        
                                        
                                    },
                                    failure: function()
                                    {
                                        onDisableInput_nat();
                                        Ext.MessageBox.show
                                        ({
                                            title: 'ERROR DE SISTEMA',
                                            msg: '<b>OCURRIO  UN ERROR CON EL SERVIDOR DEL SISTEMA!!!</b>',
                                            buttons: Ext.MessageBox.OK,
                                            icon: Ext.MessageBox.WARNING
                                        });	
                                    }									    
                                });                
                                
                            });
			}
                    }
  		 });
            
            
                // *******************************
                // * Creación de Grupo de Radios *
                // *******************************
                var radioActivo= new Ext.form.RadioGroup({
                    fieldLabel: '<b>ESTADO</b>',
                    disabled: true,
                    width:200,
                    columns: 2, //muestra los radiobuttons en dos columnas
                    id:'bol_activo_univ_g',
                    items: [
                        {boxLabel: 'Activo', name:'bol_activo_univ_g', inputValue: 't',width:20},
                        {boxLabel: 'Inactivo', name:'bol_activo_univ_g', inputValue: 'f',width:20}
                    ]
                }); 
                
                               
            
                // *****************************
		// ** Creación del formulario **
                // *****************************
                 
		var form_universidad_g = new Ext.FormPanel({ //Ext.form.FormPanel
                        id              : 'id-form-universidad-g',
                        //disabled        : true,
			region		: 'west',
			width		: 450,
                        labelAlign      : 'top',
			bodyStyle	: 'padding: 10px;',
                        loadMask        : true,
			margins		: '0 0 3 3',
			border		: false,
			defaults	: {allowBlank: false, fieldClass  :   'style_input'},
			items		: [
                                                {xtype:'hidden', name:'hid_bandera_g', id:'hid_bandera_g'},
                                                {xtype:'hidden', id:'hid_int_iduniversidad_g',name:'hid_int_iduniversidad_g'},
						{xtype:'textfield', id:'txt_nombre_univ_g', name:'txt_nombre_univ_g', fieldLabel:'<b>NOMBRE UNIVERSIDAD</b>', emptyText:'Ingresar nombre de Universidad...', maxLength:250, anchor :'95%',disabled: true},
                                                {                                        
                                                    xtype           : 'combo',
                                                    disabled        : true,
                                                    fieldLabel      : '<b>ZONA TERRITORIAL</b>',
                                                    id              : 'cmb_zona_inv_g',
                                                    name            : 'cmb_zona_inv_g',
                                                    hiddenName      : 'cmb_zona_inv_id', // Esto es importante que el nombre sea diferente que el name para que funcione
                                                    typeAhead       : true,
                                                    triggerAction   : 'all',
                                                    anchor          : '95%',
                                                    editable        : false,
                                                    mode            : 'local',
                                                    displayField    : 'lbl_zona',
                                                    valueField      : 'int_zona_univ_g',
                                                    lazyInit        : false,
                                                    store : new Ext.data.ArrayStore
                                                    ({
                                                        fields      : ['int_zona_univ_g', 'lbl_zona'],
                                                        data        : [['1', 'ZONA CENTRAL'],['2', 'ZONA OCCIDENTAL'],['3', 'ZONA ORIENTAL']]
                                                     })
                                                },
                                                radioActivo                                                
                                            ],
                                       
                                            fbar:
                                            [
                                                {text:'Agregar',  iconCls:'icon_new', scope:this, handler:this.onNew, disabled:false, id:'btnNewUniversidad'},
                                                {text:'Modificar', iconCls:'icon_update', scope:this, handler:this.onEdit, disabled:true, id:'btnEditUniversidad'},
                                                {text:'Guardar',  iconCls:'icon_save', scope: this, handler:this.onSave, disabled:true, id:'btnSaveUniversidad'},
                                                {text:'Cancelar', iconCls:'icon_cancelar', scope: this, handler:this.onCancelar, disabled:true, id:'btnCancelarUniversidad'},
                                                {text:'Imprimir Listado', iconCls:'icon_printer', scope: this, handler:this.onImprimir, disabled:false, id:'btnImprimirUsuario'}
                                            ]
            });	
    
  
            win = desktop.createWindow
            ({
                id              :   'universidad-win',
                title           :   'MANTENIMIENTO DE UNIVERSIDADES',
                width           :   900,
                height          :   500,
                iconCls         :   'icon_win_universidad',
                shim            :   false,
                animCollapse    :   false,
                constrainHeader :   true,
                layout          :   'border',
                items           :   [grid_universidad, form_universidad_g]
            });
        }
        win.show();
    },
    onImprimir: function()
    {
        
        var win = new Ext.Window({  
           title        :   'REPORTE DE UNIVERSIDADES',  
           width        :   1050,  
           height       :   600,  
           minimizable  :   false,  
           maximizable  :   false,  
           bodyStyle    :   'background-color:white;',
           modal        :   true,
           html         : '<iframe src="modulos/universidad/imprimir.php" style="width:100%;height:100%;border:none;"></iframe>'  
        });  
        win.show();
    },
    onNew: function()
    {
        
        Ext.getCmp('id-form-universidad-g').getForm().reset();
        Ext.getCmp('hid_int_iduniversidad_g').setValue("");
        
        onEnableInputUniversidad();

        Ext.getCmp("btnNewUniversidad").enable();
        Ext.getCmp("btnSaveUniversidad").enable();
        Ext.getCmp("btnEditUniversidad").disable();
        Ext.getCmp("btnCancelarUniversidad").enable();
        
        Ext.getCmp('txt_nombre_univ_g').focus(); // El foco estara puesto en el campo id
    },
    onCancelar: function()
    {
        
        Ext.getCmp('id-form-universidad-g').getForm().reset();
        Ext.getCmp('hid_int_iduniversidad_g').setValue("");
        
        onDisableInputUniversidad();

        Ext.getCmp("btnNewUniversidad").enable();
        Ext.getCmp("btnSaveUniversidad").disable();
        Ext.getCmp("btnEditUniversidad").disable();
        Ext.getCmp("btnCancelarUniversidad").disable();
        
        
        Ext.getCmp('txt_nombre_univ_g').focus(); // El foco estara puesto en el campo id
    },
    onEdit: function(){
        
        Ext.getCmp("btnEditUniversidad").disable();
        Ext.getCmp("btnNewUniversidad").enable();
        Ext.getCmp("btnSaveUniversidad").enable();
        Ext.getCmp("btnCancelarUniversidad").enable();
        
        onEnableInputUniversidad();
        
    },
    
    onSave: function()
    {
        if(Ext.getCmp('hid_int_iduniversidad_g').getValue()>0){
            //setear la bandera
            Ext.getCmp('hid_bandera_g').setValue(2); // Le decimos que es una nueva universidad
        }else{
            //setear la bandera
         Ext.getCmp('hid_bandera_g').setValue(1); // Le decimos que es una nueva universidad
        }
            
         
         //Ext.getCmp('btnSaveUniversidad').disable();
         Ext.getCmp('id-form-universidad-g').body.mask('Guardando Informacion', 'x-mask-loading');
         
         if (Ext.getCmp('id-form-universidad-g').getForm().isValid())
         {
            Ext.getCmp('id-form-universidad-g').getForm().submit
            ({   
                waitMsg : 'Verificando datos...',
		url     : 'modulos/universidad/save_universidad.php',
                method  : 'POST',
		success: function(form, action)
                {							
                    switch(action.result.bandera)
                    {
                        case 1:
                            //Ext.getCmp("hid_int_iduniversidad_g").setValue(Ext.getCmp("txt_ninscripcion").getValue());
                            //Ext.getCmp('id_grid_universidad_g').getStore().load({params:{start:0, limit:100,tipo_busq:'dui_autp'}});
                            Ext.getCmp('id_grid_universidad_g').getStore().load(); // Recargamos el Grid con el nuevo registro.
                            
                            Ext.getCmp("btnNewUniversidad").enable();
                            Ext.getCmp("btnEditUniversidad").enable();
                            
                            Ext.getCmp("btnSaveUniversidad").disable();                            
                            Ext.getCmp("btnCancelarUniversidad").disable();
                            
                            onDisableInputUniversidad();
                            

                            Ext.MessageBox.show
                             ({
                                    title   : 'INFORMACION DEL SISTEMA',
                                    msg     : '<b>LOS DATOS INGRESADOS SE GUARDARON CORRECTAMENTE!!!</b>',
                                    buttons : Ext.MessageBox.OK,
                                    icon    : Ext.MessageBox.INFO
                            });
                            
                        break;
                        case 2:
                            Ext.getCmp('btnSaveUniversidad').enable();
                            Ext.getCmp('id-form-universidad-g').body.unmask();
                            Ext.MessageBox.show
                             ({
                                    title   : 'ERROR DE SISTEMA',
                                    msg     : '<b>NO EXISTE UNA SESION VIGENTE PARA REALIZAR UNA OPERACION. SE INICIARA DE NUEVO EL SISTEMA</b>',
                                    buttons : Ext.MessageBox.OK,
                                    icon    : Ext.MessageBox.ERROR
                            });
                            location.href = '';
                        break;
                        case 3:
                            Ext.getCmp('btnSaveUniversidad').enable();
                            Ext.getCmp('id-form-universidad-g').body.unmask();
                            Ext.MessageBox.show
                             ({
                                    title   : 'ERROR DE SISTEMA',
                                    msg     : '<b>NO EXISTE CONEXION CON LA BD, NOTIFICAR AL ADMINISTRADOR.!!!</b>',
                                    buttons : Ext.MessageBox.OK,
                                    icon    : Ext.MessageBox.ERROR
                            });
                        break;
                        default:
                            Ext.getCmp('btnSaveUniversidad').enable();
                            Ext.getCmp('id-form-universidad-g').body.unmask();
                            Ext.MessageBox.show
                             ({
                                    title   : 'ERROR DE SISTEMA',
                                    msg     : '<b>OCURRIO UN ERROR AL MOMENTO DE INGRESAR LOS DATOS AL SISTEMA, INTENTE DE NUEVO.!!!</b>',
                                    buttons : Ext.MessageBox.OK,
                                    icon    : Ext.MessageBox.WARNING
                            });
                        break;
                    }
                    Ext.getCmp('id-form-universidad-g').body.unmask();
                },
		failure: function(response)
                {
                    Ext.getCmp('btnSaveUniversidad').enable();
                    Ext.getCmp('id-form-universidad-g').body.unmask();
                    Ext.MessageBox.show
                    ({
                        title: 'ERROR DE SISTEMA',
                        msg: '<b>OCURRIO  UN ERROR CON EL SERVIDOR DEL SISTEMA!!!</b>',
                        buttons: Ext.MessageBox.OK,
                        icon: Ext.MessageBox.WARNING
                    });	
		}									    
            });             
         }
         else
         {
             Ext.getCmp('btnSaveUniversidad').enable();
             Ext.getCmp('id-form-universidad-g').body.unmask();
             Ext.MessageBox.show
             ({
                title   : 'VERIFICAR ERRORES',
                msg     : '<b>LA INFORMACION INGRESADA ES INCORRECTA, REVISAR EL FORMULARIO!!!</b>',
                buttons : Ext.MessageBox.OK,
                icon    : Ext.MessageBox.ERROR
             });             
         }    
    }
});

function onDisableInputUniversidad(){
 
    //Ext.getCmp("int_iduniversidad_g").disable();
    Ext.getCmp("txt_nombre_univ_g").disable();
    Ext.getCmp("cmb_zona_inv_g").disable();
    Ext.getCmp("bol_activo_univ_g").disable();
}

function onEnableInputUniversidad(){
 
    //Ext.getCmp("hid_int_iduniversidad_g").enable();
    Ext.getCmp("txt_nombre_univ_g").enable()
    Ext.getCmp("cmb_zona_inv_g").enable();
    Ext.getCmp("bol_activo_univ_g").enable();

}

